// 定义单选框中选项
interface SelectOption {
  /**
   * @description 选中后绑定的值
   */
  value: any;
  /**
   * @description 选项展示的文本
   */
  label: string;
  /**
   * @description 选项是否可用
   * @default false
   */
  disabled?: boolean;
}

export interface FormItem {
  /**
   * @description 对应 Form.Item 中的 :label
   */
  name: string;
  /**
   * @description emit() 抛出对象的键
   */
  prop?: string;
  /**
   * @description 适用于有多个 prop 的情况
   */
  props?: string[];
  /**
   * @description 输入框数值变更时的回调函数
   */
  handler?: (value: any) => any;
  /**
   * @description 是否为时间范围选择器
   */
  time?: boolean;
  /**
   * @description 是否为单项选择框
   */
  select?: boolean;
  /**
   * @description 是否为范围输入框
   */
  range?: boolean;
  /**
   * @description 是否为数字输入框
   */
  number?: boolean;
  /**
   * @description 绑定的值
   */
  value?: any;
  /**
   * @description select: true 时的选项列表
   */
  options?: SelectOption[];
  /**
   * @description 数字输入框的最小值
   */
  min?: number;
  /**
   * @description 数字输入框的最大值
   */
  max?: number;
  /**
   * @description 是否隐藏
   */
  hide?: boolean;
  /**
   * @description 是否为开关
   */
  switch?: boolean;
  /**
   * @description 是否为级联选择框
   */
  cascader?: boolean;
  /**
   * @description 加载函数
   * @type (record: any) => any
   */
  loadData?: string | ((record: any) => any);
  /**
   * @description 日期的格式
   */
  format?: string;
  /**
   * @description 是否显示时间选择器
   */
  showTime?: boolean;
}
